//package com.ldu.exam.service;
//
//import java.util.Set;
//import java.util.stream.Collectors;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.cache.annotation.Cacheable;
//import org.springframework.data.domain.Page;
//import org.springframework.data.domain.Pageable;
//import org.springframework.stereotype.Service;
//import org.springframework.util.StringUtils;
//
//import com.ldu.exam.assistant.BeanAssistant;
//import com.ldu.exam.dao.ResourceRepository;
//import com.ldu.exam.model.AccountModel;
//import com.ldu.exam.model.ResourceModel;
//import com.ldu.exam.model.RoleModel;
//
//@Service
//public class ResourceService 
//{
//	@Autowired private ResourceRepository repository ;
//	
//	public Page<ResourceModel> findAll( Pageable page)
//	{
//		return this.repository.findAll( page);
//	}
//	
//	
//	public Iterable<ResourceModel> findAll()
//	{
//		return this.repository.findAll();
//	}
//	
//	public ResourceModel find( String id )
//	{
//		return this.repository.findById(id).orElse(null);
//	}
//	
//	public void delete( String id )
//	{
//		this.repository.deleteById(id);
//	}
//	
//	public ResourceModel save (ResourceModel model)
//	{
//		return this.repository.save(model) ;
//	}
//
//	public Page<ResourceModel> findByName(String name, Pageable page) 
//	{
//		return this.repository.findByNameContaining(name, page);
//	}
//
//	@Autowired private AccountService accountService ;
//	
//	/**
//	 * 查询登录账户所拥有资源信息
//	 * @param id 登陆账户ID
//	 * @return	登录账户所拥有资源信息
//	 */
//	@Cacheable(value="user:resources",key="#p0")
//	public Set<ResourceModel> findAllByRole(String userId) 
//	{
//		AccountModel account = this.accountService.find( userId) ;
//		Set<RoleModel> roles = account.getRoles() ;
//		
//		if( null == roles || 1 > roles.size())
//			return null ;
//		
//		Set<ResourceModel> resources = roles.stream()
//										.flatMap( x-> x.getResources().stream())
//										.filter ( BeanAssistant.distinctByKey( ResourceModel::getId))
//										.filter ( x-> ! StringUtils.isEmpty( x.getId()))
//										.collect( Collectors.toSet()) ;
//		return resources ;
//	}
//}
